/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ia1_practica3;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.BufferedReader;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;

import java.util.LinkedList;
import java.util.ArrayList;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.Image;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chunk;
import java.awt.Desktop;
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author GRACU
 */
public class Bitacora {

    int hora, minutos, segundos;
    LinkedList<ArrayList<String>> bitacora=new LinkedList<ArrayList<String>>();
    
    public void insert_bitacora(String mensaje){
        String[] mensaje2=mensaje.split(",");
        String[] posicion=new String[2];
        posicion[0]=mensaje2[2].substring(0, 2);
        posicion[1]=mensaje2[2].substring(2, 4);
        
        System.out.println(posicion[0]+"->"+posicion[1]);
        ArrayList<String> lista=new ArrayList<String>();
        lista.add(0, "JUGADOR "+mensaje2[0]);
        lista.add(1, "(FICHA) "+mensaje2[1]+" -- Movimiento ("+posicion[0]+","+posicion[1]+")");
        bitacora.add(lista);
        System.out.println(lista);
    }
    
    public void creacion(File ruta,ArrayList<Jugada> listajugadas) {
    Calendar calendario = Calendar.getInstance();
    calendario = new GregorianCalendar();

    minutos = calendario.get(Calendar.MINUTE);
    segundos = calendario.get(Calendar.SECOND);
    hora = calendario.get(Calendar.HOUR);


    System.out.println(hora + ":" + minutos + ":" + segundos);
    
        Document documento = new Document();
        try {
            FileOutputStream ficheroPdf;
            try {
                if(ruta.getPath().contains(".pdf")){
                    ficheroPdf = new FileOutputStream(ruta.getPath());
                }
                else
                ficheroPdf = new FileOutputStream(ruta.getPath()+
                        "\\BITACORA_"+String.valueOf(hora) +"-"+String.valueOf(minutos) +
                        "-"+String.valueOf(segundos) +".pdf");
                PdfWriter.getInstance(documento, ficheroPdf).setInitialLeading(20);
                documento.open();
                documento.add(new Paragraph("Practica 3 Lab. de Inteligencia Artificial 1 200818812_200818818\n\n\n",
                        FontFactory.getFont("arial", // fuente
                        25, // tamaño
                        Font.BOLD, // estilo
                        BaseColor.BLACK)));             // color

                //documento.add(new Paragraph(contenido));
                PdfPTable tabla = new PdfPTable(3);
                int p[]=new int[3];
                p[0]=4;
                p[1]=11;
                p[2]=17;
                
                tabla.setWidths(p);
//                for (int i = 0; i < 15; i++) {
//                    tabla.addCell("celda " + i);
//                }
                
                tabla.addCell(new Paragraph("No. Turno",
                        FontFactory.getFont("arial",   // fuente
                            14,                            // tamaño
                            Font.BOLD,                   // estilo
                            BaseColor.BLACK
                        )));
                
                
                tabla.addCell(new Paragraph("Nombre Jugador que realizo el movimiento",
                        FontFactory.getFont("arial",   // fuente
                            14,                            // tamaño
                            Font.BOLD,                   // estilo
                            BaseColor.BLACK
                        )));
                                
                                
                tabla.addCell(new Paragraph("Movimientos",
                        FontFactory.getFont("arial",   // fuente
                            14,                            // tamaño
                            Font.BOLD,                   // estilo
                            BaseColor.BLACK
                        )));

                for(int i=0;i<listajugadas.size();i++){
                    Jugada nueva=listajugadas.get(i);
                    nueva.getColinicio();
                    tabla.addCell(String.valueOf(i+1));
                    
                    tabla.addCell(String.valueOf(nueva.getJugador()));
                    tabla.addCell(String.valueOf("Antes("+nueva.getColinicio()+","+nueva.getFilinicio()+"), Movfinales("+nueva.getColfin()+","+nueva.getFilfin()+")"));
                    //tabla.addCell(bitacora.get(i).get(1));
                    //contenido+=i+"--"+bitacora.get(i).get(0)+"--"+bitacora.get(i).get(1)+"--\n";
                }
                documento.add(tabla);

            } catch (FileNotFoundException ex) {
                Logger.getLogger(Bitacora.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (DocumentException ex) {
            Logger.getLogger(Bitacora.class.getName()).log(Level.SEVERE, null, ex);
        }

         documento.close();
         if(ruta.getPath().contains(".pdf")){
                    abrirArchivo(ruta.getPath());
                }
         else
                abrirArchivo(ruta.getPath()+"\\BITACORA_"+String.valueOf(hora) +"-"+String.valueOf(minutos) +
                        "-"+String.valueOf(segundos) +".pdf");
        
    }
    
    
    public void abrirArchivo(String ruta)
    {

    try{
        File path = new File(ruta);
        Desktop.getDesktop().open(path);
     }catch(IOException e){
         e.printStackTrace();
        System.out.println("Ruta erronea");
     }
    }
}
